As software programs become more complex, one of the biggest issues that program designers face is making all of a software program's controls easily accessible to users within a user interface. Most software products act on a central depository called a document, whose content a user creates and edits. A document is typically displayed in a rectangular region of the display screen called a document window. A spreadsheet user arranges numbers and titles in a spreadsheet document which acts like a 2-dimensional table. A word-processing user edits a document which is designed to visually mimic a sheet of paper. An image software user works on a document which looks like a photograph.
To create and perform actions on these documents, programmers have used a variety of user interface elements such as menus, dialog boxes and floating palettes. Pull-down menus, such as the one shown in FIG. 1, are typically lists of commands which can be hidden and activated or pulled down with a pointing or cursor control device, such as a "mouse" or trackball, or a keyboard command. In the example of FIG. 1, a click on command word "View" 1 in the menu at the top of the screen will cause the pull-down menu 2 to appear. These single-word commands take up very little screen real estate because the pull-down menu, in its collapsed state, has a very compact form, such as a single command word.
Dialog boxes, such as the one shown in FIG. 2, are interface elements that are typically composed of rectangular regions that appear outside of the document window. While a dialog box is active, action within the document is usually halted while the user is requested to select one or more of a number of options identified within the dialog box. The dialog box is then dismissed and disappears, and the document is updated based upon the selection which the user made from the dialog box.
Floating palettes (or simply "palettes"), unlike dialog boxes, are typically rectangular regions that "float" above or near the document window or even inside it and contain commands or tools which are used in an interactive fashion. As opposed to dialog boxes, floating palettes are "non-modal". This means that, unlike dialog boxes, actions occurring within the document are not halted while the palettes are being accessed by the user. Accordingly, floating palettes are most useful for holding tools and commands that a user needs to access interactively in tandem with the document itself. In the example of Adobe Photoshop.TM., floating palettes are used to select colors, document layers or tools, among other things.
As software becomes more complex, the number of possible actions and commands within each program rapidly multiplies. Menus become larger and longer; dialog boxes proliferate; and the number of required floating palettes grows. Thus, one of the most important tasks of the software creator is to manage the growing complexity of a program's user interface. The objective is to make all of a program's capabilities easily accessible and understandable, yet keep as much as possible of the document itself fully accessible and visible. This requires the minimization of the screen real estate used for the user interface elements discussed above, particularly those which remain on the screen for long periods.
In the screen example shown in FIG. 3 from the Microsoft Excel.TM. program, five of the nine possible floating palettes 3, 4, 5, 6 and 7, which Excel terms "toolbars", have been made accessible. Each of the icons (pictorial representations of commands) situated in these named palettes "Utility", "Macro", "Drawing", "Formatting" and "Chart", executes an Excel command when accessed by the mouse. Note, however, that these five palettes obscure a great deal of the document window, making it more difficult for the user to view and manipulate data within the document. This illustrates the problem of making commands easily accessible while maintaining as much as possible of the document accessible at the same time.
There are several ways that software engineers have tried to resolve these conflicting goals. The most basic way is to switch the floating palettes from visible to invisible when specific menu commands are chosen. For example, Adobe Photoshop has commands that enable a user to selectively hide or show the "Colors" palette.
Microsoft Excel, as shown in FIG. 3, implements two other popular schemes. In the case of the "Macro" palette 4, for example, movement of the tiny box 8 in the lower right hand corner allows the palette to be reoriented. As shown in FIG. 4, the "Macro" palette can be oriented either vertically or horizontally.
The second mechanism that Excel employs allows users to create custom palettes which contain the user's own private selection of command icons. Each of the icons on these palettes symbolizes and activates a selected Excel command. In this fashion, a user can customize the program so the commands that are used most often can be made the most accessible.
As will be apparent, all of these solutions solve part of the problem. However, as the number and variety of desirable floating palettes grow, additional real estate saving techniques must be invented.